//////////////////////////////////////////////////////////////////////////////////////////////
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//	File			:	"OptionsState.h"
//	Authors			:	Jake Castillo,
//	Project			:	Project Aetheryte
//	Date Modified	:	8/7/2013
//	Purpose			:	OptionsState is where the player selects the various different options
//						for the game, including bg volume, sfx volume, resolution, fullscreen. 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//////////////////////////////////////////////////////////////////////////////////////////////

#pragma once
#include "igamestate.h"
#include "../Game Essentials/Game.h"

class OptionsState : public IGameState
{
public:
	static OptionsState* GetInstance( void );

	// IGameState Interface
	virtual void Enter ( void )					override;					
	virtual void Exit  ( void )					override;					
															
	virtual bool Input ( void )					override;					
	virtual void Update( float fElapsedTime )	override;	
	virtual void Render( void )					override;

private:
	enum Width	{ Small = 800, Medium = 1024, Large  = 1920 };
	enum Height { Short = 600, Tall   = 768,  Grande = 1080 };

	OptionsState(void);
	~OptionsState(void);
	OptionsState(const OptionsState&);
	OptionsState& operator= (const OptionsState&);

	int		CursorPosition;
	float	keyPressedTimer;

	int		ResCount;
	bool	Fullscreen;
	float	m_nBGVolume;
	float	m_nSFXVolume;

	Resolution CurrentResolution;
};

